package com.fau.hm.service;

import java.util.List;
import java.util.Map;

import com.fau.hm.entity.MedicalAdmin;
import com.fau.hm.entity.MedicalGroup;
import com.fau.hm.entity.MedicalPlatform;
import com.fau.hm.util.Page;

/**
 * @desc 组织机构Service接口
 * @author dangjh
 * @datetime 2014年10月12日,下午6:28:06
 */
public interface IDeptManagerService {

	/**
	 * @desc 根据企业id查询企业下所有平台
	 * @param map
	 * @param platform
	 * @param admin
	 * @return
	 * @author dangjh
	 * @datetime 2014年10月14日,下午9:42:14
	 */
	public Page findPlatformByEid(Map<String, Object> map, MedicalPlatform platform, MedicalAdmin admin);
	
	/**
	 * @desc 保存中心信息
	 * @param platform
	 * @param admin
	 * @author dangjh
	 * @datetime 2014年10月12日,下午6:38:49
	 */
	public boolean savePlatform(MedicalPlatform platform, MedicalAdmin admin);
	
	/**
	 * @desc 保存修改的中心信息
	 * @param medicalDepartment
	 * @return
	 * @author dangjh
	 * @datetime 2014年10月13日,下午7:31:51
	 */
	public boolean saveEditPlatform(MedicalPlatform medicalPlatform);
	
	/**
	 * @desc 删除部门下的中心信息
	 * @param medicalPlatform
	 * @author dangjh
	 * @datetime 2014年10月15日,上午11:45:43
	 */
	public void delPlatform(MedicalPlatform medicalPlatform);
	
	/**
	 * @desc 检查当前中心下是否包含组
	 * @param platformId
	 * @return
	 * @author dangjh
	 * @datetime 2014年10月15日,上午11:46:53
	 */
	public boolean includePlatfromGroup(String platformId);
	
	/**
	 * @desc 根据企业id查询企业下所有组
	 * @param map
	 * @param dept
	 * @return
	 * @author dangjh
	 * @datetime 2014年10月14日,下午9:42:14
	 */
	public Page findGroupByEid(Map<String, Object> map, MedicalGroup group, MedicalAdmin admin);
	
	/**
	 * @desc 根据企业id查询平台(中心)
	 * @param eid
	 * @return
	 * @author dangjh
	 * @datetime 2014年10月15日,下午2:52:56
	 */
	public List<MedicalPlatform> findPlatformList(String eid);
	
	/**
	 * @desc 保存组信息
	 * @param group
	 * @param admin
	 * @author dangjh
	 * @datetime 2014年10月12日,下午6:38:49
	 */
	public boolean saveGroup(MedicalGroup group, MedicalAdmin admin, String platformId);
	
	/**
	 * @desc 保存修改的组信息
	 * @param medicalGroup
	 * @return
	 * @author dangjh
	 * @datetime 2014年10月13日,下午7:31:51
	 */
	public boolean saveEditGroup(MedicalGroup medicalGroup, String platformId);
	
	/**
	 * @desc 删除部门下的平台信息
	 * @param group
	 * @author dangjh
	 * @datetime 2014年10月15日,上午11:45:43
	 */
	public void delGroup(MedicalGroup group);
	
	/**
	 * @desc 检查当前平台下是否包含用户
	 * @param groupId
	 * @return
	 * @author dangjh
	 * @datetime 2014年10月15日,上午11:46:53
	 */
	public boolean includeGroupUser(String groupId);
	
	/**
	 * @desc 判断部门是否存在
	 * @param eid
	 * @param name
	 * @return
	 * @author dangjh
	 * @datetime 2014年10月23日,下午8:06:19
	 */
	public boolean includeDept(String eid, String name);
	
	/**
	 * @desc 判断同一中心下是否包含相同的组
	 * @param platformId
	 * @param name
	 * @return boolean
	 * @author dangjh
	 * 2014年12月24日 下午5:05:17
	 */
	public boolean includeGroup(String platformId, String name);
	
	/**
	 * @desc 判断中心是否存在
	 * @param platformId
	 * @param name
	 * @return boolean
	 * @author dangjh
	 * 2014年12月24日 下午5:05:17
	 */
	public boolean includePlatform(String eid, String name, String type);
	
}
